/**
 * ES模块修复版本的文档生成器入口
 * 
 * 这个文件是为了解决ES模块和CommonJS之间的兼容性问题
 * 它将动态导入generateTableDocs.js并执行其中的函数
 */

import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
import fs from 'fs';

// 获取当前文件目录
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

/**
 * 主函数
 */
async function main() {
    console.log('🚀 启动文档生成工具 (ESM兼容版本)...');

    try {
        // 将命令行参数传递给主脚本
        const args = process.argv.slice(2);
        console.log(`📋 传递参数: ${args.join(' ')}`);

        // 动态导入主脚本模块
        const scriptPath = join(__dirname, 'generateTableDocs.js');

        if (!fs.existsSync(scriptPath)) {
            console.error(`❌ 错误: 找不到主脚本文件 ${scriptPath}`);
            process.exit(1);
        }

        console.log(`📥 正在导入模块: ${scriptPath}`);
        const mainModule = await import(scriptPath);

        // 执行主函数
        console.log('▶️ 执行文档生成...');
        if (typeof mainModule.default === 'function') {
            await mainModule.default(...args);
        } else if (typeof mainModule.generate === 'function') {
            await mainModule.generate(...args);
        } else if (typeof mainModule.main === 'function') {
            await mainModule.main(...args);
        } else {
            console.error('❌ 无法找到主函数入口点，请检查脚本导出');
            process.exit(1);
        }

        console.log('✅ 文档生成完成');
    } catch (error) {
        console.error('❌ 文档生成过程中发生错误:', error);
        process.exit(1);
    }
}

// 执行主函数
main().catch(error => {
    console.error('🔥 致命错误:', error);
    process.exit(1);
}); 